In many data processing applications, it is often desirable to process a given set of data using different algorithms to obtain more than one result. For example, in electronic measuring and signal analysis systems, it is usually desirable to process concurrently the measured data of a target device with more than one algorithm, so that the results can be presented together to give a more comprehensive analysis of the device, and/or a better understanding of the measurement.
In prior art data processing systems, concurrent processing of data under a given number of different algorithms is typically accomplished by executing a corresponding number of independent tasks in parallel to produce the required results. However, as the throughput of a data processing system is usually inversely proportional to the number of tasks running therein, each initiation of a task would therefore increase the system workload, thereby reducing its throughput.
Unfortunately, throughput reduction is usually not tolerable in many data processing applications. For example, the useability of an electronic measuring system may be greatly degraded if, due to a heavy system workload, results of a measurement cannot be processed and displayed in a substantially instantaneous and simultaneous manner.
Thus, in systems where high speed processing is desired, there exists a need to reduce the overall amount of processing of a given set of data.